#pragma once

#include "../Math/Vector2.h"

class CGHANeuron
{
public:
	CGHANeuron() = delete;

	CGHANeuron(int InputDimension);

public:
	virtual double Execute(const Vector2 & Input);

	Vector2 & GetWeightVector();

	void SetWeightVector(const Vector2 & newW);

	Vector2 & GetInputVector();

	double GetOutputValue();
	
	bool CheckWChangeRate(double EPS);

protected:
	Vector2  m_W;

	Vector2  m_LW;

	Vector2  m_X;

	double  m_Y;
};